/*
 * GMTFactory.h
 *
 *  Created on: Mar 8, 2013
 *      Author: diego
 */

#ifndef GMTFACTORY_H_
#define GMTFACTORY_H_

#include "options/GmtOptions.h"
#include "exe/ModelOptimize.h"
#include "search/SearchAlgorithm.h"
#include "util/GlobalDefs.h"
#ifdef _PLL
#include "exe/PLLModelOptimize.h"
#else
#include "exe/PhymlModelOptimize.h"
#endif

namespace gmt {

class GmtFactory {
public:
	GmtFactory();
	virtual ~GmtFactory();
	static ModelOptimize * createModelOptimize( GmtOptions * options );
	static SearchAlgorithm * createSearchAlgorithm( GmtOptions * options, PartitionMap * partitionMap );
};

} /* namespace gmt */
#endif /* GMTFACTORY_H_ */
